<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
 <meta>
  <!-- Stylesheets -->
  <link href="../web.css" type="text/css" rel="stylesheet"></link>
  <link href="../pygmentize.css" type="text/css" rel="stylesheet"></link>
  <title>VLFeat - Documentation - C API</title>
  <link rel="stylesheet" type="text/css" href="../doxygen.css"></style>

  <!-- Scripts-->
  
 </meta>

 <!-- Body Start -->
 <body>
  <div id="header">
   <!-- Google CSE Search Box Begins -->
   <form action="http://www.vlfeat.org/search.html" method="get" id="cse-search-box" enctype="application/x-www-form-urlencoded">
    <div>
     <input type="hidden" name="cx" value="003215582122030917471:oq23albfeam"></input>
     <input type="hidden" name="cof" value="FORID:11"></input>
     <input type="hidden" name="ie" value="UTF-8"></input>
     <input type="text" name="q" size="31"></input>
     <input type="submit" name="sa" value="Search"></input>
    </div>
   </form>
   <script src="http://www.google.com/coop/cse/brand?form=cse-search-box&amp;lang=en" xml:space="preserve" type="text/javascript"></script>
   <!-- Google CSE Search Box Ends -->
   <h1><a shape="rect" href="../index.html" class="plain"><span id="vlfeat">VLFeat</span><span id="dotorg">.org</span></a></h1>
  </div>
  <div id="headbanner">
   Documentation - C API
  </div>
  <div id="pagebody">
   <div id="sidebar"> <!-- Navigation Start -->
    <ul>
<li><a href="../index.html">Home</a>
</li>
<li><a href="../download.html">Download</a>
</li>
<li><a href="../doc.html">Documentation</a>
<ul>
<li><a href="../mdoc/mdoc.html">Matlab API</a>
</li>
<li><a href="index.html" class='active' >C API</a>
</li>
<li><a href="../man/man.html">Man pages</a>
</li>
</ul></li>
<li><a href="../overview/tut.html">Tutorials</a>
</li>
<li><a href="../applications/apps.html">Applications</a>
</li>
</ul>

   </div> <!-- sidebar -->
   <div id="content">
    
    <link rel="stylesheet" type="text/css" href="../doxygen.css"></style>
    <div class="doxygen">
<div>
<!-- Generated by Doxygen 1.7.5.1 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a>  </div>
  <div class="headertitle">
<div class="title">hikmeans.h File Reference</div>  </div>
</div>
<div class="contents">

<p>Hierarchical integer K-Means clustering.  
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="generic_8h.html">generic.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="ikmeans_8h.html">ikmeans.h</a>&quot;</code><br/>
</div><table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlHIKMNode.html">VlHIKMNode</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">HIKM tree node.  <a href="structVlHIKMNode.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">HIKM tree.  <a href="structVlHIKMTree.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="func-members"></a>
Functions</h2></td></tr>
<tr><td colspan="2"><div class="groupHeader">Create and destroy</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#ae48c89b710a84568dcac00ddd763e604">vl_hikm_new</a> (int method)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">New HIKM tree.  <a href="#ae48c89b710a84568dcac00ddd763e604"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a7830ea7acf7332e0eda8369b58853808">vl_hikm_delete</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete HIKM tree.  <a href="#a7830ea7acf7332e0eda8369b58853808"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Retrieve data and parameters</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#aec69eb38a84e1ec90ccececd6eaee4f9">vl_hikm_get_ndims</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get data dimensionality.  <a href="#aec69eb38a84e1ec90ccececd6eaee4f9"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a413080c385f4979af475297c4de68036">vl_hikm_get_K</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get K.  <a href="#a413080c385f4979af475297c4de68036"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a5871baa3b7224ad48583cd1a7b77b072">vl_hikm_get_depth</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get depth.  <a href="#a5871baa3b7224ad48583cd1a7b77b072"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a41f0093905ef603a8b93e921522638e4">vl_hikm_get_verbosity</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get verbosity level.  <a href="#a41f0093905ef603a8b93e921522638e4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a2a1e3cc7f9faa8f7e6381a2fef52651d">vl_hikm_get_max_niters</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get maximum number of iterations.  <a href="#a2a1e3cc7f9faa8f7e6381a2fef52651d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="structVlHIKMNode.html">VlHIKMNode</a> const *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a81736d35ffc85981e1ecdaa75732b460">vl_hikm_get_root</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *f)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Get maximum number of iterations.  <a href="#a81736d35ffc85981e1ecdaa75732b460"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Set parameters</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a23789e4faee416be030f2a519de096e3">vl_hikm_set_verbosity</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *f, int verb)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set verbosity level.  <a href="#a23789e4faee416be030f2a519de096e3"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a431d5ac9cb5d5ae058dcc9785ad08fe5">vl_hikm_set_max_niters</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *f, int max_niters)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Set maximum number of iterations.  <a href="#a431d5ac9cb5d5ae058dcc9785ad08fe5"></a><br/></td></tr>
<tr><td colspan="2"><div class="groupHeader">Process data</div></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#aca086860d48ff66ed1a05f7d8ce8b443">vl_hikm_init</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *f, int M, int K, int depth)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize HIKM tree.  <a href="#aca086860d48ff66ed1a05f7d8ce8b443"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#a7f0a6305bd9fa3647748a4b41f354a7c">vl_hikm_train</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *f, <a class="el" href="host_8h.html#a38fbd9a3cf53dfc9a5650c38497b7d35">vl_uint8</a> const *data, int N)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Train HIKM tree.  <a href="#a7f0a6305bd9fa3647748a4b41f354a7c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="hikmeans_8h.html#ace2e7bb3cc8811f2a227c5c5e0606218">vl_hikm_push</a> (<a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *f, <a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> *asgn, <a class="el" href="host_8h.html#a38fbd9a3cf53dfc9a5650c38497b7d35">vl_uint8</a> const *data, int N)</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Project data down HIKM tree.  <a href="#ace2e7bb3cc8811f2a227c5c5e0606218"></a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<div class="textblock"><p>Hierarchical Integer K-Means Clustering.</p>
<p>Hierarchical integer K-Means clustering (HIKM) is a simple hierarchical version of integer K-Means (<a class="el" href="ikmeans_8h.html">IKM</a>). The algorithm recursively applies integer K-means to create more refined partitions of the data.</p>
<p>Create a tree with <a class="el" href="hikmeans_8c.html#ae48c89b710a84568dcac00ddd763e604" title="New HIKM tree.">vl_hikm_new()</a> and delete it with <a class="el" href="hikmeans_8c.html#a7830ea7acf7332e0eda8369b58853808" title="Delete HIKM tree.">vl_hikm_delete()</a>. Use <a class="el" href="hikmeans_8c.html#a7f0a6305bd9fa3647748a4b41f354a7c" title="Train HIKM tree.">vl_hikm_train()</a> to build the tree from training data and <a class="el" href="hikmeans_8c.html#ace2e7bb3cc8811f2a227c5c5e0606218" title="Project data down HIKM tree.">vl_hikm_push()</a> to project new data down a HIKM tree.</p>
<h2><a class="anchor" id="hikm-tree"></a>
HIKM tree</h2>
<p>The HIKM tree is represented by a <a class="el" href="structVlHIKMTree.html" title="HIKM tree.">VlHIKMTree</a> structure, which contains a tree composed of <a class="el" href="structVlHIKMNode.html" title="HIKM tree node.">VlHIKMNode</a>. Each node is an integer K-means filter which partitions the data into <code>K</code> clusters.</p>
<dl class="author"><dt><b>Author:</b></dt><dd>Brian Fulkerson </dd></dl>
</div><hr/><h2>Function Documentation</h2>
<a class="anchor" id="a7830ea7acf7332e0eda8369b58853808"></a><!-- doxytag: member="hikmeans.h::vl_hikm_delete" ref="a7830ea7acf7332e0eda8369b58853808" args="(VlHIKMTree *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vl_hikm_delete </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a5871baa3b7224ad48583cd1a7b77b072"></a><!-- doxytag: member="hikmeans.h::vl_hikm_get_depth" ref="a5871baa3b7224ad48583cd1a7b77b072" args="(VlHIKMTree const *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vl_hikm_get_depth </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>depth. </dd></dl>

</div>
</div>
<a class="anchor" id="a413080c385f4979af475297c4de68036"></a><!-- doxytag: member="hikmeans.h::vl_hikm_get_K" ref="a413080c385f4979af475297c4de68036" args="(VlHIKMTree const *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vl_hikm_get_K </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>K. </dd></dl>

</div>
</div>
<a class="anchor" id="a2a1e3cc7f9faa8f7e6381a2fef52651d"></a><!-- doxytag: member="hikmeans.h::vl_hikm_get_max_niters" ref="a2a1e3cc7f9faa8f7e6381a2fef52651d" args="(VlHIKMTree const *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vl_hikm_get_max_niters </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>maximum number of iterations. </dd></dl>

</div>
</div>
<a class="anchor" id="aec69eb38a84e1ec90ccececd6eaee4f9"></a><!-- doxytag: member="hikmeans.h::vl_hikm_get_ndims" ref="aec69eb38a84e1ec90ccececd6eaee4f9" args="(VlHIKMTree const *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vl_hikm_get_ndims </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>data dimensionality. </dd></dl>

</div>
</div>
<a class="anchor" id="a81736d35ffc85981e1ecdaa75732b460"></a><!-- doxytag: member="hikmeans.h::vl_hikm_get_root" ref="a81736d35ffc85981e1ecdaa75732b460" args="(VlHIKMTree const *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structVlHIKMNode.html">VlHIKMNode</a> const * vl_hikm_get_root </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>maximum number of iterations. </dd></dl>

</div>
</div>
<a class="anchor" id="a41f0093905ef603a8b93e921522638e4"></a><!-- doxytag: member="hikmeans.h::vl_hikm_get_verbosity" ref="a41f0093905ef603a8b93e921522638e4" args="(VlHIKMTree const *f)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int vl_hikm_get_verbosity </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> const *&#160;</td>
          <td class="paramname"><em>f</em></td><td>)</td>
          <td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>verbosity level. </dd></dl>

</div>
</div>
<a class="anchor" id="aca086860d48ff66ed1a05f7d8ce8b443"></a><!-- doxytag: member="hikmeans.h::vl_hikm_init" ref="aca086860d48ff66ed1a05f7d8ce8b443" args="(VlHIKMTree *f, int M, int K, int depth)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vl_hikm_init </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>M</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>K</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>depth</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
    <tr><td class="paramname">M</td><td>Data dimensionality. </td></tr>
    <tr><td class="paramname">K</td><td>Number of clusters per node. </td></tr>
    <tr><td class="paramname">depth</td><td>Tree depth.</td></tr>
  </table>
  </dd>
</dl>
<dl class="remark"><dt><b>Remarks:</b></dt><dd><em>depth</em> cannot be smaller than 1.</dd></dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>a new HIKM tree representing the clustering. </dd></dl>

</div>
</div>
<a class="anchor" id="ae48c89b710a84568dcac00ddd763e604"></a><!-- doxytag: member="hikmeans.h::vl_hikm_new" ref="ae48c89b710a84568dcac00ddd763e604" args="(int method)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a>* vl_hikm_new </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>method</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">method</td><td>clustering method. </td></tr>
  </table>
  </dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>new HIKM tree. </dd></dl>

</div>
</div>
<a class="anchor" id="ace2e7bb3cc8811f2a227c5c5e0606218"></a><!-- doxytag: member="hikmeans.h::vl_hikm_push" ref="ace2e7bb3cc8811f2a227c5c5e0606218" args="(VlHIKMTree *f, vl_uint *asgn, vl_uint8 const *data, int N)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vl_hikm_push </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="host_8h.html#a5bd6e91d6bfd0be04101fdca94069c92">vl_uint</a> *&#160;</td>
          <td class="paramname"><em>asgn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="host_8h.html#a38fbd9a3cf53dfc9a5650c38497b7d35">vl_uint8</a> const *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
    <tr><td class="paramname">asgn</td><td>Path down the tree (out). </td></tr>
    <tr><td class="paramname">data</td><td>Data to project. </td></tr>
    <tr><td class="paramname">N</td><td>Number of data.</td></tr>
  </table>
  </dd>
</dl>
<p>The function writes to <em>asgn</em> the path of the data <em>data</em> down the HIKM tree <em>f</em>. The parameter <em>asgn</em> must point to an array of <code>M</code> by <code>N</code> elements, where <code>M</code> is the depth of the HIKM tree and <code>N</code> is the number of data point to process. </p>

</div>
</div>
<a class="anchor" id="a431d5ac9cb5d5ae058dcc9785ad08fe5"></a><!-- doxytag: member="hikmeans.h::vl_hikm_set_max_niters" ref="a431d5ac9cb5d5ae058dcc9785ad08fe5" args="(VlHIKMTree *f, int max_niters)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vl_hikm_set_max_niters </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>max_niters</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
    <tr><td class="paramname">max_niters</td><td>maximum number of iterations. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a23789e4faee416be030f2a519de096e3"></a><!-- doxytag: member="hikmeans.h::vl_hikm_set_verbosity" ref="a23789e4faee416be030f2a519de096e3" args="(VlHIKMTree *f, int verb)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vl_hikm_set_verbosity </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>verb</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td><code> [inline]</code></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
    <tr><td class="paramname">verb</td><td>verbosity level. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a7f0a6305bd9fa3647748a4b41f354a7c"></a><!-- doxytag: member="hikmeans.h::vl_hikm_train" ref="a7f0a6305bd9fa3647748a4b41f354a7c" args="(VlHIKMTree *f, vl_uint8 const *data, int N)" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void vl_hikm_train </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="structVlHIKMTree.html">VlHIKMTree</a> *&#160;</td>
          <td class="paramname"><em>f</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="host_8h.html#a38fbd9a3cf53dfc9a5650c38497b7d35">vl_uint8</a> const *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>N</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div>
<div class="memdoc">
<dl><dt><b>Parameters:</b></dt><dd>
  <table class="params">
    <tr><td class="paramname">f</td><td>HIKM tree. </td></tr>
    <tr><td class="paramname">data</td><td>Data to cluster. </td></tr>
    <tr><td class="paramname">N</td><td>Number of data. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div>
     <!-- Doc Here -->
    </div>
   
   </div>
   <div class="clear">&nbsp;</div>
  </div> <!-- pagebody -->
  <div id="footer">
   &copy; 2007-12 Andrea Vedaldi and Brian Fulkerson
  </div> <!-- footer -->

  <!-- Google Analytics Begins -->
  <script xml:space="preserve" type="text/javascript">
   //<![CDATA[
    var localre = /vlfeat.org/;
    if(document.location.host.search(localre) != -1)
    {
   var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
   document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
   }
   //]]>
  </script>
  <script xml:space="preserve" type="text/javascript">
    //<![CDATA[
    var localre = /vlfeat.org/;
    if(document.location.host.search(localre) != -1)
    {

   try {
   var pageTracker = _gat._getTracker("UA-4936091-2");
   pageTracker._trackPageview();
   } catch(err) {}

   }
   //]]>
  </script>
  <!-- Google Analytics Ends -->
 </body>
</html>

 
